6.1810 提供了一個教學用的作業系統 xv6,讓學生可以直接修改以及trace程式碼,我認為這非常的讓人興奮,平常雖然每天都在使用作業系統,但也不是很了解 OS 是如何運作的,而這們課程透過 xv6 來把 OS 的原形展露出來,有不懂的地方都可以向原始碼請教。
這部份的詳細內容都寫在 lab util 中,大致上你會需要一個linux系統(windows 使用者可以用虛擬機, 或是),然後 xv6 會跑在 linux 所架設的虛擬機上
$ git clone git://g.csail.mit.edu/xv6-labs-2023
$ cd xv6-labs-2023
$ git checkout util
$ sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
$ make qemu
...
(一大串訊息)
...
xv6 kernel is booting
hart 2 starting
hart 1 starting
init: starting sh
$
到這裡,xv6 已經成功開機了!
$ ls
. 1 1 1024
.. 1 1 1024
README 2 2 2059
xargstest.sh 2 3 93
cat 2 4 24120
echo 2 5 22944
forktest 2 6 13184
grep 2 7 27424
init 2 8 23680
kill 2 9 22904
ln 2 10 22744
ls 2 11 26312
mkdir 2 12 23040
rm 2 13 23032
sh 2 14 41856
stressfs 2 15 23904
usertests 2 16 148312
grind 2 17 38008
wc 2 18 25232
zombie 2 19 22280
console 3 20 0
沒意外了話,會出現以上的畫面
ctrl+a
放開這兩個鍵之後,再按下 x
$ QEMU: Terminated
就可以離開了
把程式碼除存到自己的 github 上了話總是方便許多的,不過有些地方需要注意一下
在 github 上新增一個 repo 之後,會到一個頁面寫著:
…or push an existing repository from the command line:
git remote add origin git@github.com:9501sam/xv6-labs-2023.git
git branch -M main
git push -u origin main
直接使用這個指令了話,是沒有辦法 push 上去的,原因在於現在的 origin
已經指向了 git://g.csail.mit.edu/xv6-labs-2023
,所以現在會需要先把 origin
改個名子才行:
$ git remote -v
origin git://g.csail.mit.edu/xv6-labs-2023 (fetch)
origin git://g.csail.mit.edu/xv6-labs-2023 (push)
$ git remote rename origin upstream
git remote add origin git@github.com:9501sam/xv6-labs-2023.git
git branch -M main
git push -u origin main
最近看了 Threatening the 5G core via PFCP DoS attacks: the case of blocking UAV communications 這篇 paper,在講針對 5G 核網中的 N4 界面(PFCP protocol)的攻擊,目前的想法是先將 paper 中的攻擊重現出來,裡面使用了 Scapy 這個套件,可是我弄了一個下午都還沒弄出來@@。前鎮子我的好友小吉建議我事情卡住時可以先做些其他事情轉移注意力,可能會比鑽牛角尖在一見事情上還要好,因此先來發個鐵人賽,希望等等回去著手時可以看到一些先前沒注意到的事情。